/*
 * ATC2603A Spec Version_V1.0
 */

#ifndef __ATC2603A_REG_DEFINITION_H___
#define __ATC2603A_REG_DEFINITION_H___

/* PMU Register Address */
#define ATC2603A_PMU_BASE			(0x0)
#define ATC2603A_PMU_SYS_CTL0			(ATC2603A_PMU_BASE + 0x00)
#define ATC2603A_PMU_SYS_CTL1			(ATC2603A_PMU_BASE + 0x01)
#define ATC2603A_PMU_SYS_CTL2			(ATC2603A_PMU_BASE + 0x02)
#define ATC2603A_PMU_SYS_CTL3			(ATC2603A_PMU_BASE + 0x03)
#define ATC2603A_PMU_SYS_CTL4			(ATC2603A_PMU_BASE + 0x04)
#define ATC2603A_PMU_SYS_CTL5			(ATC2603A_PMU_BASE + 0x05)
#define ATC2603A_PMU_SYS_CTL6			(ATC2603A_PMU_BASE + 0x06)
#define ATC2603A_PMU_SYS_CTL7			(ATC2603A_PMU_BASE + 0x07)
#define ATC2603A_PMU_SYS_CTL8			(ATC2603A_PMU_BASE + 0x08)
#define ATC2603A_PMU_SYS_CTL9			(ATC2603A_PMU_BASE + 0x09)
#define ATC2603A_PMU_BAT_CTL0			(ATC2603A_PMU_BASE + 0x0A)
#define ATC2603A_PMU_BAT_CTL1			(ATC2603A_PMU_BASE + 0x0B)
#define ATC2603A_PMU_VBUS_CTL0			(ATC2603A_PMU_BASE + 0x0C)
#define ATC2603A_PMU_VBUS_CTL1			(ATC2603A_PMU_BASE + 0x0D)
#define ATC2603A_PMU_WALL_CTL0			(ATC2603A_PMU_BASE + 0x0E)
#define ATC2603A_PMU_WALL_CTL1			(ATC2603A_PMU_BASE + 0x0F)
#define ATC2603A_PMU_SYS_PENDING		(ATC2603A_PMU_BASE + 0x10)
#define ATC2603A_PMU_DC1_CTL0			(ATC2603A_PMU_BASE + 0x11)
#define ATC2603A_PMU_DC1_CTL1			(ATC2603A_PMU_BASE + 0x12)
#define ATC2603A_PMU_DC1_CTL2			(ATC2603A_PMU_BASE + 0x13)
#define ATC2603A_PMU_DC2_CTL0			(ATC2603A_PMU_BASE + 0x14)
#define ATC2603A_PMU_DC2_CTL1			(ATC2603A_PMU_BASE + 0x15)
#define ATC2603A_PMU_DC2_CTL2			(ATC2603A_PMU_BASE + 0x16)
#define ATC2603A_PMU_DC3_CTL0			(ATC2603A_PMU_BASE + 0x17)
#define ATC2603A_PMU_DC3_CTL1			(ATC2603A_PMU_BASE + 0x18)
#define ATC2603A_PMU_DC3_CTL2			(ATC2603A_PMU_BASE + 0x19)
#define ATC2603A_PMU_DC4_CTL0			(ATC2603A_PMU_BASE + 0x1A)
#define ATC2603A_PMU_DC4_CTL1			(ATC2603A_PMU_BASE + 0x1B)
#define ATC2603A_PMU_DC5_CTL0			(ATC2603A_PMU_BASE + 0x1C)
#define ATC2603A_PMU_DC5_CTL1			(ATC2603A_PMU_BASE + 0x1D)
#define ATC2603A_PMU_LDO1_CTL			(ATC2603A_PMU_BASE + 0x1E)
#define ATC2603A_PMU_LDO2_CTL			(ATC2603A_PMU_BASE + 0x1F)
#define ATC2603A_PMU_LDO3_CTL			(ATC2603A_PMU_BASE + 0x20)
#define ATC2603A_PMU_LDO4_CTL			(ATC2603A_PMU_BASE + 0x21)
#define ATC2603A_PMU_LDO5_CTL			(ATC2603A_PMU_BASE + 0x22)
#define ATC2603A_PMU_LDO6_CTL			(ATC2603A_PMU_BASE + 0x23)
#define ATC2603A_PMU_LDO7_CTL			(ATC2603A_PMU_BASE + 0x24)
#define ATC2603A_PMU_LDO8_CTL			(ATC2603A_PMU_BASE + 0x25)
#define ATC2603A_PMU_LDO9_CTL			(ATC2603A_PMU_BASE + 0x26)
#define ATC2603A_PMU_LDO10_CTL			(ATC2603A_PMU_BASE + 0x27)
#define ATC2603A_PMU_LDO11_CTL			(ATC2603A_PMU_BASE + 0x28)
#define ATC2603A_PMU_SWITCH_CTL			(ATC2603A_PMU_BASE + 0x29)
#define ATC2603A_PMU_OV_CTL0			(ATC2603A_PMU_BASE + 0x2A)
#define ATC2603A_PMU_OV_CTL1			(ATC2603A_PMU_BASE + 0x2B)
#define ATC2603A_PMU_OV_STATUS			(ATC2603A_PMU_BASE + 0x2C)
#define ATC2603A_PMU_OV_EN			(ATC2603A_PMU_BASE + 0x2D)
#define ATC2603A_PMU_OV_INT_EN			(ATC2603A_PMU_BASE + 0x2E)
#define ATC2603A_PMU_OC_CTL			(ATC2603A_PMU_BASE + 0x2F)
#define ATC2603A_PMU_OC_STATUS			(ATC2603A_PMU_BASE + 0x30)
#define ATC2603A_PMU_OC_EN			(ATC2603A_PMU_BASE + 0x31)
#define ATC2603A_PMU_OC_INT_EN			(ATC2603A_PMU_BASE + 0x32)
#define ATC2603A_PMU_UV_CTL0			(ATC2603A_PMU_BASE + 0x33)
#define ATC2603A_PMU_UV_CTL1			(ATC2603A_PMU_BASE + 0x34)
#define ATC2603A_PMU_UV_STATUS			(ATC2603A_PMU_BASE + 0x35)
#define ATC2603A_PMU_UV_EN			(ATC2603A_PMU_BASE + 0x36)
#define ATC2603A_PMU_UV_INT_EN			(ATC2603A_PMU_BASE + 0x37)
#define ATC2603A_PMU_OT_CTL			(ATC2603A_PMU_BASE + 0x38)
#define ATC2603A_PMU_CHARGER_CTL0		(ATC2603A_PMU_BASE + 0x39)
#define ATC2603A_PMU_CHARGER_CTL1		(ATC2603A_PMU_BASE + 0x3A)
#define ATC2603A_PMU_CHARGER_CTL2		(ATC2603A_PMU_BASE + 0x3B)
#define ATC2603A_PMU_BAKCHARGER_CTL		(ATC2603A_PMU_BASE + 0x3C)
#define ATC2603A_PMU_APDS_CTL			(ATC2603A_PMU_BASE + 0x3D)
#define ATC2603A_PMU_AUXADC_CTL0		(ATC2603A_PMU_BASE + 0x3E)
#define ATC2603A_PMU_AUXADC_CTL1		(ATC2603A_PMU_BASE + 0x3F)
#define ATC2603A_PMU_BATVADC			(ATC2603A_PMU_BASE + 0x40)
#define ATC2603A_PMU_BATIADC			(ATC2603A_PMU_BASE + 0x41)
#define ATC2603A_PMU_WALLVADC			(ATC2603A_PMU_BASE + 0x42)
#define ATC2603A_PMU_WALLIADC			(ATC2603A_PMU_BASE + 0x43)
#define ATC2603A_PMU_VBUSVADC			(ATC2603A_PMU_BASE + 0x44)
#define ATC2603A_PMU_VBUSIADC			(ATC2603A_PMU_BASE + 0x45)
#define ATC2603A_PMU_SYSPWRADC			(ATC2603A_PMU_BASE + 0x46)
#define ATC2603A_PMU_REMCONADC			(ATC2603A_PMU_BASE + 0x47)
#define ATC2603A_PMU_SVCCADC			(ATC2603A_PMU_BASE + 0x48)
#define ATC2603A_PMU_CHGIADC			(ATC2603A_PMU_BASE + 0x49)
#define ATC2603A_PMU_IREFADC			(ATC2603A_PMU_BASE + 0x4A)
#define ATC2603A_PMU_BAKBATADC			(ATC2603A_PMU_BASE + 0x4B)
#define ATC2603A_PMU_ICTEMPADC			(ATC2603A_PMU_BASE + 0x4C)
#define ATC2603A_PMU_AUXADC0			(ATC2603A_PMU_BASE + 0x4D)
#define ATC2603A_PMU_AUXADC1			(ATC2603A_PMU_BASE + 0x4E)
#define ATC2603A_PMU_AUXADC2			(ATC2603A_PMU_BASE + 0x4F)
#define ATC2603A_PMU_AUXADC3			(ATC2603A_PMU_BASE + 0x50)
#define ATC2603A_PMU_BDG_CTL			(ATC2603A_PMU_BASE + 0x51)
#define ATC2603A_RTC_CTL			(ATC2603A_PMU_BASE + 0x52)
#define ATC2603A_RTC_MSALM			(ATC2603A_PMU_BASE + 0x53)
#define ATC2603A_RTC_HALM			(ATC2603A_PMU_BASE + 0x54)
#define ATC2603A_RTC_YMDALM			(ATC2603A_PMU_BASE + 0x55)
#define ATC2603A_RTC_MS				(ATC2603A_PMU_BASE + 0x56)
#define ATC2603A_RTC_H				(ATC2603A_PMU_BASE + 0x57)
#define ATC2603A_RTC_DC				(ATC2603A_PMU_BASE + 0x58)
#define ATC2603A_RTC_YMD			(ATC2603A_PMU_BASE + 0x59)
#define ATC2603A_EFUSE_DAT			(ATC2603A_PMU_BASE + 0x5A)
#define ATC2603A_EFUSECRTL1			(ATC2603A_PMU_BASE + 0x5B)
#define ATC2603A_EFUSECRTL2			(ATC2603A_PMU_BASE + 0x5C)
#define ATC2603A_IRC_CTL			(ATC2603A_PMU_BASE + 0x60)
#define ATC2603A_IRC_STAT			(ATC2603A_PMU_BASE + 0x61)
#define ATC2603A_IRC_CC				(ATC2603A_PMU_BASE + 0x62)
#define ATC2603A_IRC_KDC			(ATC2603A_PMU_BASE + 0x63)
#define ATC2603A_IRC_WK				(ATC2603A_PMU_BASE + 0x64)

/* CMU_CONTROL Register Address */
#define ATC2603A_CMU_CONTROL_BASE		(0x100)
#define ATC2603A_CMU_HOSCCTL			(ATC2603A_CMU_CONTROL_BASE + 0x00)
#define ATC2603A_CMU_DEVRST			(ATC2603A_CMU_CONTROL_BASE + 0x01)

/* INTS Register Address */
#define ATC2603A_INTS_BASE			(0x200)
#define ATC2603A_INTS_PD			(ATC2603A_INTS_BASE + 0x00)
#define ATC2603A_INTS_MSK			(ATC2603A_INTS_BASE + 0x01)

/* MFP Register Address */
#define ATC2603A_MFP_BASE			(0x300)
#define ATC2603A_MFP_CTL0			(ATC2603A_MFP_BASE + 0x00)
#define ATC2603A_MFP_CTL1			(ATC2603A_MFP_BASE + 0x01)
#define ATC2603A_GPIO_OUTEN0			(ATC2603A_MFP_BASE + 0x10)
#define ATC2603A_GPIO_OUTEN1			(ATC2603A_MFP_BASE + 0x11)
#define ATC2603A_GPIO_INEN0			(ATC2603A_MFP_BASE + 0x12)
#define ATC2603A_GPIO_INEN1			(ATC2603A_MFP_BASE + 0x13)
#define ATC2603A_GPIO_DAT0			(ATC2603A_MFP_BASE + 0x14)
#define ATC2603A_GPIO_DAT1			(ATC2603A_MFP_BASE + 0x15)
#define ATC2603A_PAD_DRV0			(ATC2603A_MFP_BASE + 0x20)
#define ATC2603A_PAD_DRV1			(ATC2603A_MFP_BASE + 0x21)
#define ATC2603A_PAD_EN				(ATC2603A_MFP_BASE + 0x22)
#define ATC2603A_DEBUG_SEL			(ATC2603A_MFP_BASE + 0x30)
#define ATC2603A_DEBUG_IE			(ATC2603A_MFP_BASE + 0x31)
#define ATC2603A_DEBUG_OE			(ATC2603A_MFP_BASE + 0x32)

/* AUDIO_IN_OUT Register Address */
#define ATC2603A_AUDIO_IN_OUT_BASE		(0x400)
#define ATC2603A_AUDIOINOUT_CTL			(ATC2603A_AUDIO_IN_OUT_BASE + 0x00)
#define ATC2603A_AUDIO_DEBUGOUTCTL		(ATC2603A_AUDIO_IN_OUT_BASE + 0x01)
#define ATC2603A_DAC_FILTERCTL0			(ATC2603A_AUDIO_IN_OUT_BASE + 0x02)
#define ATC2603A_DAC_FILTERCTL1			(ATC2603A_AUDIO_IN_OUT_BASE + 0x03)
#define ATC2603A_DAC_DIGITALCTL			(ATC2603A_AUDIO_IN_OUT_BASE + 0x04)
#define ATC2603A_DAC_VOLUMECTL0			(ATC2603A_AUDIO_IN_OUT_BASE + 0x05)
#define ATC2603A_DAC_VOLUMECTL1			(ATC2603A_AUDIO_IN_OUT_BASE + 0x06)
#define ATC2603A_DAC_VOLUMECTL2			(ATC2603A_AUDIO_IN_OUT_BASE + 0x07)
#define ATC2603A_DAC_VOLUMECTL3			(ATC2603A_AUDIO_IN_OUT_BASE + 0x08)
#define ATC2603A_DAC_ANANLOG0			(ATC2603A_AUDIO_IN_OUT_BASE + 0x09)
#define ATC2603A_DAC_ANANLOG1			(ATC2603A_AUDIO_IN_OUT_BASE + 0x0A)
#define ATC2603A_DAC_ANANLOG2			(ATC2603A_AUDIO_IN_OUT_BASE + 0x0B)
#define ATC2603A_DAC_ANANLOG3			(ATC2603A_AUDIO_IN_OUT_BASE + 0x0C)
#define ATC2603A_DAC_ANANLOG4			(ATC2603A_AUDIO_IN_OUT_BASE + 0x0D)
#define ATC2603A_CLASSD_CTL0			(ATC2603A_AUDIO_IN_OUT_BASE + 0x0E)
#define ATC2603A_CLASSD_CTL1			(ATC2603A_AUDIO_IN_OUT_BASE + 0x0F)
#define ATC2603A_CLASSD_CTL2			(ATC2603A_AUDIO_IN_OUT_BASE + 0x10)
#define ATC2603A_ADC0_DIGITALCTL		(ATC2603A_AUDIO_IN_OUT_BASE + 0x11)
#define ATC2603A_ADC0_HPFCTL			(ATC2603A_AUDIO_IN_OUT_BASE + 0x12)
#define ATC2603A_ADC0_CTL			(ATC2603A_AUDIO_IN_OUT_BASE + 0x13)
#define ATC2603A_AGC0_CTL0			(ATC2603A_AUDIO_IN_OUT_BASE + 0x14)
#define ATC2603A_AGC0_CTL1			(ATC2603A_AUDIO_IN_OUT_BASE + 0x15)
#define ATC2603A_AGC0_CTL2			(ATC2603A_AUDIO_IN_OUT_BASE + 0x16)
#define ATC2603A_ADC_ANANLOG0			(ATC2603A_AUDIO_IN_OUT_BASE + 0x17)
#define ATC2603A_ADC_ANANLOG1			(ATC2603A_AUDIO_IN_OUT_BASE + 0x18)
#define ATC2603A_ADC1_DIGITALCTL		(ATC2603A_AUDIO_IN_OUT_BASE + 0x19)
#define ATC2603A_ADC1_CTL			(ATC2603A_AUDIO_IN_OUT_BASE + 0x1A)
#define ATC2603A_AGC1_CTL0			(ATC2603A_AUDIO_IN_OUT_BASE + 0x1B)
#define ATC2603A_AGC1_CTL1			(ATC2603A_AUDIO_IN_OUT_BASE + 0x1C)
#define ATC2603A_AGC1_CTL2			(ATC2603A_AUDIO_IN_OUT_BASE + 0x1D)

/* ETHERNET_PHY Register Address */
#define ATC2603A_ETHERNET_PHY_BASE		(0x500)
#define ATC2603A_PHY_SMI_STAT			(ATC2603A_ETHERNET_PHY_BASE + 0x00)
#define ATC2603A_PHY_SMI_CONFIG			(ATC2603A_ETHERNET_PHY_BASE + 0x01)
#define ATC2603A_PHY_SMI_DATA			(ATC2603A_ETHERNET_PHY_BASE + 0x02)
#define ATC2603A_PHY_CTRL			(ATC2603A_ETHERNET_PHY_BASE + 0x03)
#define ATC2603A_PHY_ID1			(ATC2603A_ETHERNET_PHY_BASE + 0x04)
#define ATC2603A_PHY_ID2			(ATC2603A_ETHERNET_PHY_BASE + 0x05)
#define ATC2603A_PHY_ADDR			(ATC2603A_ETHERNET_PHY_BASE + 0x06)
#define ATC2603A_PHY_LED			(ATC2603A_ETHERNET_PHY_BASE + 0x07)
#define ATC2603A_PHY_INT_CTRL			(ATC2603A_ETHERNET_PHY_BASE + 0x08)
#define ATC2603A_PHY_INT_STAT			(ATC2603A_ETHERNET_PHY_BASE + 0x09)
#define ATC2603A_PHY_HW_RST			(ATC2603A_ETHERNET_PHY_BASE + 0x0A)
#define ATC2603A_PHY_CONFIG			(ATC2603A_ETHERNET_PHY_BASE + 0x0B)
#define ATC2603A_PHY_PLL_CTL0			(ATC2603A_ETHERNET_PHY_BASE + 0x0C)
#define ATC2603A_PHY_PLL_CTL1			(ATC2603A_ETHERNET_PHY_BASE + 0x0D)
#define ATC2603A_PHY_DBG0			(ATC2603A_ETHERNET_PHY_BASE + 0x0E)
#define ATC2603A_PHY_DBG1			(ATC2603A_ETHERNET_PHY_BASE + 0x0F)
#define ATC2603A_PHY_DBG2			(ATC2603A_ETHERNET_PHY_BASE + 0x10)
#define ATC2603A_PHY_DBG3			(ATC2603A_ETHERNET_PHY_BASE + 0x11)
#define ATC2603A_PHY_DBG4			(ATC2603A_ETHERNET_PHY_BASE + 0x12)

/* TP Register Address */
#define ATC2603A_TP_CONTROLLER_BASE		(0x600)
#define ATC2603A_TP_CTL0			(ATC2603A_TP_CONTROLLER_BASE + 0x00)
#define ATC2603A_TP_CTL1			(ATC2603A_TP_CONTROLLER_BASE + 0x01)
#define ATC2603A_TP_STATUS			(ATC2603A_TP_CONTROLLER_BASE + 0x02)
#define ATC2603A_TP_XDAT			(ATC2603A_TP_CONTROLLER_BASE + 0x03)
#define ATC2603A_TP_YDAT			(ATC2603A_TP_CONTROLLER_BASE + 0x04)
#define ATC2603A_TP_Z1DAT			(ATC2603A_TP_CONTROLLER_BASE + 0x05)
#define ATC2603A_TP_Z2DAT			(ATC2603A_TP_CONTROLLER_BASE + 0x06)

/* TEST_CONTROL Register Address */
#define ATC2603A_TEST_CONTROL_BASE		(0x700)
#define ATC2603A_TEST_MODE_CFG			(ATC2603A_TEST_CONTROL_BASE + 0x00)
#define ATC2603A_TEST_CFG_EN			(ATC2603A_TEST_CONTROL_BASE + 0x01)
#define ATC2603A_AUDIO_MEM_BIST_CTL		(ATC2603A_TEST_CONTROL_BASE + 0x02)
#define ATC2603A_AUDIO_MEM_BIST_RESULT		(ATC2603A_TEST_CONTROL_BASE + 0x03)
#define ATC2603A_CVER				(ATC2603A_TEST_CONTROL_BASE + 0x04)

#endif
